'<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script type="text/javascript">
            // function fun(n,o){
            //     console.log(o);
            //     return {
            //         fun : function(m){
            //             return fun(m,n);
            //         }
            //     }
            // }
            // var a = fun(0);//undefined
            //         a.fun(1);//0
            //         a.fun(2);//0
            //         a.fun(3);//0
            // var b = fun(0).fun(1).fun(2).fun(3);//undefined 0 1 2    b->f(3){}
            // var c = fun(0).fun(1);c.fun(2);c.fun(3);//undefined 0 1 1


//             编写一个类和类继承，类名为Person，属性name,age,方法sayHello.
            // 一个Student类，继承自Person，自有属性score,自有方法study
                // function Person(name,age){
                //     this.name = name;
                //     this.age = age;
                //     function sayHello(){
                //         console.log("这是父类");
                //     }
                // }
                
                // function Student(score){
                //     this.score = score;
                //     function study(){
                //         console.log("这是子类");
                //     }
                // }
                
                //原型链
                // Student.prototype = new Person("00","12");
                // Student.prototype.constructor = Student;
                // var student = new Student("100");
                // console.log(student.score);

                //构造函数继承
                // function Student(name,age,score){
                    
                //     this.score = score;
                //     function study(){
                //         console.log("nb");
                //     }
                // }
                // Person.call(this,name,age)
                // var student = new Student("张三","12",12);
                // console.log(student.name);

                //圣杯模式
                // var inherit = (function (){
                //     function f(){};
                //     return function(Target,Origin){
                //     f.prototype = Origin.prototype;
                //     Target.prototype = new f();
                //     Target.prototype.constructor = Target;
                //     Target.prototype.uber = Origin.prototype;
                //     }
                // }())
                // inherit(Student,Person);
                // var student = new Student();
                // console.log(student.name);

                //class继承
                // class Person{
                //     constructor(name,age){
                //         this.name = name;
                //         this,age = age;
                //     }
                //     sayHello(){
                //         console.log("这是父类");
                //     }
                // }
                // class Student extends Person{
                //     constructor(name,age,score){
                //         super()
                //         this.score = score;
                //         this.name = name;
                //         this.age = age;
                //     }
                //     study(){
                //         console.log(this.name+"这是子类");
                //     }
                // }
                // var student = new Student("张三","1","2")
                // student.study();
            // 请使用   原型链   构造函数继承  圣杯模式   class继承分别实现
    </script>
</body>
</html>